﻿using Company.Core.Language;
using Prism.Events;
using Prism.Ioc;
using Prism.Modularity;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Company.Core.Ioc
{
    [ExposedServiceAttribute(Lifetime.Singleton, AutoInitialize = true)]
    public sealed class PrismProvider
    {
        public PrismProvider(ILanguageManager language,IContainerExtension container,IRegionManager regionManager,IDialogService dialogService,IEventAggregator eventAggregator,IModuleManager moduleManager) 
        {
            LanguageManager = language;
            Container = container;
            RegionManager = regionManager;
            DialogService = dialogService;
            EventAggregator = eventAggregator;
            ModuleManager = moduleManager;
        }

        public static ILanguageManager LanguageManager { get; private set; }

        //容器
        public static IContainerExtension Container{ get; private set; }
        //区域管理器
        public static IRegionManager RegionManager{get; private set; }
        //对话框管理器
        public static IDialogService DialogService{get; private set; }
        //事件聚合器
        public static IEventAggregator EventAggregator{get; private set; }
        //模块管理器
        public static IModuleManager ModuleManager{get; private set; }



    }
}
